package com.ihg.hiex.entity.session.before;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import com.ihg.hiex.entity.session.Session;
import com.ihg.hiex.entity.session.participator.Type;
import com.ihg.hiex.entity.session.task.SessionTask;

/**
 * 
 * @author dan
 *
 */
@Entity
@Table(name = "session_before_meeting")
public class SessionBeforeMeeting {
    
    @Id
    @GeneratedValue
    private Long id;
    
    /**
     * 所属session
     */
    @ManyToOne(fetch = FetchType.LAZY, optional = false)
    private Session session;
    
    /** 所属 session task */
    @ManyToOne(fetch = FetchType.LAZY, optional = false)
    private SessionTask sessionTask;
    
    /** 会议类型 */
    @Enumerated(EnumType.STRING)
    private MeetingType meetingType;
    
    /** 参与者类型 */
    @Enumerated(EnumType.STRING)
    private Type type;
    
    /**
     * 参与者ID
     */
    private Long participatorId;
    
    /** 会议时间 */
    private Date meetingTime;
    
    /** 账号 */
    private String accountName;
    
    /** 账号密码 */
    private String accountPassword;
    
    /** Zoom Link */
    private String zoomLink;
    
    /** 会议总人数 */
    private int totalAmount;
    
    @Column(name = "is_disabled")
    private boolean disabled;
    
    /**
     * 
     */
    public SessionBeforeMeeting() {
        
    }

    /**
     * @return the id
     */
    public Long getId() {
        return id;
    }

    /**
     * @return the session
     */
    public Session getSession() {
        return session;
    }

    /**
     * @return the sessionTask
     */
    public SessionTask getSessionTask() {
        return sessionTask;
    }

    /**
     * @return the meetingType
     */
    public MeetingType getMeetingType() {
        return meetingType;
    }

    /**
     * @return the type
     */
    public Type getType() {
        return type;
    }

    /**
     * @return the participatorId
     */
    public Long getParticipatorId() {
        return participatorId;
    }

    /**
     * @return the meetingTime
     */
    public Date getMeetingTime() {
        return meetingTime;
    }

    /**
     * @return the accountName
     */
    public String getAccountName() {
        return accountName;
    }

    /**
     * @return the accountPassword
     */
    public String getAccountPassword() {
        return accountPassword;
    }

    /**
     * @return the zoomLink
     */
    public String getZoomLink() {
        return zoomLink;
    }

    /**
     * @return the totalAmount
     */
    public int getTotalAmount() {
        return totalAmount;
    }

    /**
     * @return the disabled
     */
    public boolean isDisabled() {
        return disabled;
    }

    /**
     * @param id the id to set
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * @param session the session to set
     */
    public void setSession(Session session) {
        this.session = session;
    }

    /**
     * @param sessionTask the sessionTask to set
     */
    public void setSessionTask(SessionTask sessionTask) {
        this.sessionTask = sessionTask;
    }

    /**
     * @param meetingType the meetingType to set
     */
    public void setMeetingType(MeetingType meetingType) {
        this.meetingType = meetingType;
    }

    /**
     * @param type the type to set
     */
    public void setType(Type type) {
        this.type = type;
    }

    /**
     * @param participatorId the participatorId to set
     */
    public void setParticipatorId(Long participatorId) {
        this.participatorId = participatorId;
    }

    /**
     * @param meetingTime the meetingTime to set
     */
    public void setMeetingTime(Date meetingTime) {
        this.meetingTime = meetingTime;
    }

    /**
     * @param accountName the accountName to set
     */
    public void setAccountName(String accountName) {
        this.accountName = accountName;
    }

    /**
     * @param accountPassword the accountPassword to set
     */
    public void setAccountPassword(String accountPassword) {
        this.accountPassword = accountPassword;
    }

    /**
     * @param zoomLink the zoomLink to set
     */
    public void setZoomLink(String zoomLink) {
        this.zoomLink = zoomLink;
    }

    /**
     * @param totalAmount the totalAmount to set
     */
    public void setTotalAmount(int totalAmount) {
        this.totalAmount = totalAmount;
    }

    /**
     * @param disabled the disabled to set
     */
    public void setDisabled(boolean disabled) {
        this.disabled = disabled;
    }

}
